import { fileURLToPath, URL } from 'node:url';

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';

//导入自动导包插件
import AutoImport from 'unplugin-auto-import/vite';
//导入自动导vue组件的插件
import Commponents from 'unplugin-vue-components/vite';
// 模块化导入svg插件
import UnpluginSvgComponent from 'unplugin-svg-component/vite';

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      //  imports用来指定需要自动导入的包
      imports: [
        'vue',
        'vue-router',
        'pinia',
        {
          '@vueuse/core': ['createFetch', 'useInfiniteScroll', 'refDebounced', 'useFocus', 'useScroll', 'useLocalStorage'],
        },
      ],
      // 自动生成类型描述文件
      dts: './src/types/auto-imports.d.ts',
      // 指定一个目录，目录下的文件会被自动导入
      dirs: ['./src/**/*'],
      // 是否支持在vue模版中使用自动导入
      vueTemplate: true,
    }),
    Commponents({
      dirs: ['./src/components', './src/layout', './src/views'],
      dts: './src/types/components.d.ts',
    }),
    UnpluginSvgComponent({
      iconDir: './src/assets/svg',
      dts: true,
      dtsDir: './src/types',
      prefix: 'icon',
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
    },
  },
});
